package com.settlement.system.common.enums;


import com.settlement.system.common.util.common.EnumUtil;

/**
 * FSP返回单据处理状态枚举
 * @author hc
 * @since 2022/4/6
 */
public enum HeadProcessEnum implements Code<Integer>{
    /**
     * head处理中
     */
    HEAD_PROCESS_ING(0, "正在处理中"),
    /**
     * head处理转换异常
     */
    HEAD_CONVERT_EXCEPTION(1, "转换异常"),
    /**
     * head该条处理成功
     */
    HEAD_SUCCESS(2, "该单据处理成功"),
    /**
     * head该条处理异常时，该条无异常
     */
    HEAD_PROCESS_NOERROR(3, "批次处理失败时，该条单据无异常"),
    /**
     * head该条处理异常时，该条异常
     */
    HEAD_PROCESS_ERROR(4, "批次处理失败时，该条单据有异常"),
    /**
     * head该条删除异常时，该条无异常
     */
    HEAD_DELETE_FAILED_NOERROR(5, "第三方系统删除单据失败时，该条单据无异常"),
    /**
     * head该条删除异常时，该条无异常
     */
    HEAD_DELETE_FAILED_ERROR(6, "第三方系统删除单据失败时，该条单据异常"),
    /**
     * head该条处理异常时，该条异常
     */
    HEAD_HAS_DELETE(7, "该凭证号已删除"),
    /**
     * head无需记账
     */
    HEAD_NOT_NEED_TALLY(8,"无需记账"),
    ;

    private final Integer code;
    private final String name;

    HeadProcessEnum(Integer code, String name){
        this.code=code;
        this.name=name;
    }

    /**
     * 数值获取对应的 StandardStatusEnum
     * @param code
     * @return
     */
    public static HeadProcessEnum witch(Integer code){
        return EnumUtil.witch(code, HeadProcessEnum.class,null);
    }


    @Override
    public Integer code() {
        return code;
    }
}
